package com.sali.config;

import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * 生成验证码配置
 *kaptcha.border	图片边框，合法值：yes , no	yes
 * kaptcha.border.color	边框颜色，合法值： r,g,b (and optional alpha) 或者 white,black,blue.	black
 * kaptcha.border.thickness	边框厚度，合法值：>0	1
 * kaptcha.image.width	图片宽	200
 * kaptcha.image.height	图片高	50
 * kaptcha.producer.impl	图片实现类	com.google.code.kaptcha.impl.DefaultKaptcha
 * kaptcha.textproducer.impl	文本实现类	com.google.code.kaptcha.text.impl.DefaultTextCreator
 * kaptcha.textproducer.char.string	文本集合，验证码值从此集合中获取	abcde2345678gfynmnpwx
 * kaptcha.textproducer.char.length	验证码长度	5
 * kaptcha.textproducer.font.names	字体	Arial, Courier
 * kaptcha.textproducer.font.size	字体大小	40px
 * kaptcha.textproducer.font.color	字体颜色，合法值： r,g,b  或者 white,black,blue.	black
 * kaptcha.textproducer.char.space	文字间隔	2
 * kaptcha.noise.impl	干扰实现类	com.google.code.kaptcha.impl.DefaultNoise
 * kaptcha.noise.color	干扰颜色，合法值： r,g,b 或者 white,black,blue.	black
 * kaptcha.obscurificator.impl	图片样式：
 * 水纹com.google.code.kaptcha.impl.WaterRipple
 * 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy
 * 阴影com.google.code.kaptcha.impl.ShadowGimpy	com.google.code.kaptcha.impl.WaterRipple
 * kaptcha.background.impl	背景实现类	com.google.code.kaptcha.impl.DefaultBackground
 * kaptcha.background.clear.from	背景颜色渐变，开始颜色	light grey
 * kaptcha.background.clear.to	背景颜色渐变，结束颜色	white
 * kaptcha.word.impl	文字渲染器	com.google.code.kaptcha.text.impl.DefaultWordRenderer
 * kaptcha.session.key	session key	KAPTCHA_SESSION_KEY
 * kaptcha.session.date	session date	KAPTCHA_SESSION_DATE
 * @author Mark sunlightcs@gmail.com
 */
@Configuration
public class KaptchaConfig {

    //    @Bean
//    public DefaultKaptcha producer() {
//        Properties properties = new Properties();
//        properties.put("kaptcha.border", "no");
//        properties.put("kaptcha.image.width", 240);
//        properties.put("kaptcha.image.height", 60);
//        properties.put("kaptcha.textproducer.font.color", "black");
//        properties.put("kaptcha.textproducer.char.space", "5");
//        properties.put("kaptcha.textproducer.char.length", "4");
//        properties.put("kaptcha.textproducer.font.names", "Arial,Courier,cmr10,宋体,楷体,微软雅黑");
//        Config config = new Config(properties);
//        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
//        defaultKaptcha.setConfig(config);
//        return defaultKaptcha;
//    }



    @Bean
    public DefaultKaptcha kaptchaProducer() {
        DefaultKaptcha kaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
        // 设置边框
        properties.setProperty("kaptcha.border", "no");
        // 设置边距
        properties.setProperty("kaptcha.border.thickness", "1");
        // 设置背景颜色
        properties.setProperty("kaptcha.background.clear.from", "white");
        properties.setProperty("kaptcha.background.clear.to", "white");
        // 设置文本颜色
        properties.setProperty("kaptcha.textproducer.font.color", "black");
        // 设置字体大小
        properties.setProperty("kaptcha.textproducer.font.size", "32");
        // 设置字体
        properties.setProperty("kaptcha.textproducer.font.names", "Arial,Courier");
        // 设置验证码的长度
        properties.setProperty("kaptcha.textproducer.char.length", "4");
        // 设置验证码的尺寸
        properties.setProperty("kaptcha.image.width", "120");
        properties.setProperty("kaptcha.image.height", "40");
        // 设置验证码的noise
        properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");
        // 设置验证码的样式
        properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.ShadowGimpy");
        Config config = new Config(properties);
        kaptcha.setConfig(config);
        return kaptcha;
    }

}
